我在RubyonRails应用程序中使用外部API。我需要向这家公司发送花车,但他们只接受1.0、1.25、1.5、1.75等值,2.0等我的值可能类似于1.34或1.80。理想情况下,我需要将它们四舍五入到最接近的0.25。完成此任务的最佳方法是什么?如果我执行1.34.round(0),它会给我1.0,这比我需要的要低。谢谢! 最佳答案 (1.27*4).round/4.0#=>1.25如果你打算经常使用它,猴子修补Float类是非常有意义的,以简化使用:classFloatdefround_to_quarter(self*4)
有时我看到代码使用to_d。ruby文档甚至声明thereisaFloat#to_dmethod.但是,它不在我的ruby版本中(ruby1.9.3p263(2012-08-23revision36792)。1.9.3p263:001>"0.0".to_dNoMethodError:undefinedmethod`to_d'for"0.0":Stringfrom(irb):1from/home/iblue/.rvm/rubies/ruby-1.9.3-head/bin/irb:16:in`'1.9.3p263:002>0.0.to_dNoMethodError:undefinedm
如果有一个等价于R'ssignif的东西就好了Ruby中的函数。例如:>>(11.11).signif(1)10>>(22.22).signif(2)22>>(3.333).signif(2)3.3>>(4.4).signif(3)4.4#It'susually4.40butthat'sOK.Rdoesnotprintthetrailing0's#becauseitreturnsthefloatdatatype.ForRubywewantthesame.>>(5.55).signif(2)5.6 最佳答案 可能有更好的方法,但这似乎
打印float时,ruby打印1234.0,句点后只有一个0。我如何强制ruby打印两个0? 最佳答案 格式化字符串来拯救:>>puts"%.2f"%1.0#=>nil1.00 关于带有双0的Rubyfloat,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5702906/
在为一些与JRuby中的临时文件交互的代码运行单元测试时,我有时会得到以下信息:Exception:java.lang.ThreadDeaththrownfromtheUncaughtExceptionHandlerinthread"Thread-6395"它似乎没有引起任何问题,但这是怎么回事,我如何确定它发生在哪里?我尝试打开-d,但这并没有给我异常的堆栈跟踪。 最佳答案 FWIW:这可能与http://jira.codehaus.org/browse/JRUBY-7074有关.我偶尔会在不使用反引号但调用系统的JRuby程序中
Ruby新手。这段代码有什么问题?city_details['longitude']+","+city_details['latitude']我收到这个错误:./player_location.rb:6:in`+':Stringcan'tbecoercedintoFloat(TypeError) 最佳答案 看起来city_details['longitude']和city_details['latitude']是Float值。您不能像这样在Ruby中将Float添加到String。您可以将所有内容转换为String,然后+它们,或者
Ruby中是否有一些功能/语法来比较两个float和增量?类似于来自test/unit的assert_in_delta(expected_float,actual_float,delta)但返回bool值? 最佳答案 (expected_float-actual_float).abs 关于ruby-如何比较Floats和delta?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/
尝试在ruby脚本中使用roogem解析XLSX文件。在Excel中,日期以DDDDD.ttttt格式存储为float或整数,从1900-01-00(00no01)开始计算。因此,为了转换诸如40396之类的日期-您将使用1900-01-00+40396,您应该得到2010-10-15,但我得到的是2010-08-08。我正在使用active_support/time进行这样的计算:Time.new("1900-01-01")+40396.days我的计算有误还是主动支持有问题?我在Windows7+最新的active_supportgem(3.2.1)上运行ruby1.9.3
我有一个字符串"1/16"我想将它转换为float并乘以45。但是,我没有得到想要的结果。我在script/console中尝试>>"1/16".to_f=>1.0>>"1/16".to_f*45=>45.0如何获得2.81的预期结果大图:我有一个这样的下拉列表:每当用户选择oz值时,我想将它乘以45我也是这样的:first,*rest=params[:volume].to_s.split(//)ifrest.first=="oz"@indprodprice=@prods.orig_price.to_i*first.to_f*28.3495else@indprodprice=@prod
我正在使用Ruby1.8.7和Rails2.3.5。如果我有一个像12.525这样的float,如何获取小数点后的位数?在这种情况下,我希望得到“3”。 最佳答案 我猜是这样的:n=12.525n.to_s.split('.').last.size 关于ruby-on-rails-如何计算Float中的小数位数?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8597766/